﻿#ifndef MYDATABASE_H
#define MYDATABASE_H

#include <QObject>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QString>
#include <QSqlError>
#include <QMessageBox>
#include <QMap>
#include <QVariant>

/*
使用案例：
    //创建MyDatabase对象
    mdb = new MyDatabase("demo01","buffer");
    //初始化MyDatabase
    mdb->InitDatabase("create table buffer(id int , name char(50))");
    //增
    mdb->Add("3,'nihao'");
    mdb->Add("1,'i'");
    mdb->Add("2,'o'");
    //查
    QVariantList a = mdb->Find("id = 1");
    //输出查的结果
    qDebug()<<a;
    //删
    mdb->Delete("id = 2");
    //改
    mdb->Update("id = 1","name = 'n'");
*/

class MyDatabase : public QObject
{
    Q_OBJECT
private:
    QString databaseName;   //数据库名称
    QString tableName;  //页面名称
    QMap<QString,QString> dataTypeDictionary;   //存储页表中的数据类型
    int columnCount = 0;//列数
public:
    QSqlDatabase db;
    QSqlQuery *query;
    MyDatabase(QString databaseName,QString tableName):
        databaseName(databaseName),tableName(tableName){}
    ~MyDatabase(){db.close();}
    explicit MyDatabase(QObject *parent = nullptr);
    bool InitDatabase(QString sql);
    bool Add(QString value);
    bool Delete(QString where);
    QMap<QString,QString> GetdataTypeDictionary(){return dataTypeDictionary;}
    bool Update(QString where,QString value);
    QVariantList Find(QString where);

    bool execute(const QString &sql);

    QSqlQuery query_dhy(const QString &sql);
signals:

};

#endif // MYDATABASE_H
